package com.ftw.commons.utils

import android.annotation.SuppressLint
import android.text.TextUtils
import com.ftw.commons.R

/**
 * 描    述：
 * 作    者：fantianwen
 * 时    间：2019-12-02
 */
object FileTypeUtils {

    /**
     * 获取文件小logo
     */
    @SuppressLint("DefaultLocale")
    fun getSmallLogo(suffix: String?): Int {

        suffix?.let {
            when (suffix.toLowerCase()) {

                "psd" -> {
                    return R.drawable.icon_psd_small
                }

                "iso" -> {
                    return R.drawable.icon_iso_small
                }

                "bt" -> {
                    return R.drawable.icon_bt_small
                }

                "ai" -> {
                    return R.drawable.icon_ai_small
                }

                "ae" -> {
                    return R.drawable.icon_ae_small
                }

                "wps",
                "WPS" -> {
                    return R.drawable.icon_wps_small
                }

                //图片
                "jpeg",
                "JPG",
                "jpg",
                "wmf",
                "GIF",
                "TIF",
                "EPS",
                "PSD",
                "CDR",
                "IFF",
                "iff",
                "TGA",
                "PCD",
                "MPT",
                "mpt",
                "TIFF",
                "WEBP",
                "SWF",
                "png",
                "PNG",
                "bmp",
                "DIB",
                "dib",
                "PCP",
                "pcp",
                "dif",
                "DIF",
                "BMP",
                "tiff",
                "webp",
                "gif",
                "WMF",
                "dxf",
                "raw",
                "pcd",
                "cdr",
                "svg",
                "eps",
                "ufo",
                "fpx",
                "exif",
                "tga",
                "pcx",
                "tif",

                "pcb" -> {
                    return R.drawable.icon_jpg_small
                }

                //文档
                "ppt",
                "PPTM",
                "PPSX",
                "pptm",
                "ppsx",
                "PPSM",
                "ppsm",
                "POTX",
                "potx",
                "POTM",
                "ppam",
                "PPAM",
                "PPTX",
                "PPT",
                "pptx" -> {
                    return R.drawable.icon_ppt_small
                }
                "doc",
                "DOC",
                "DOCX",
                "DOCM",
                "docm",
                "dotx",
                "DOTX",
                "DOTM",
                "dotm",
                "docx" -> {
                    return R.drawable.icon_doc_small
                }
                "xls",
                "XLS",
                "XLSX",
                "XLSM",
                "xlsm",
                "SLTX",
                "xltx",
                "XLTM",
                "xltm",
                "XLSB",
                "xlsb",
                "XLAM",
                "xlam",
                "xlsx" -> {
                    return R.drawable.icon_xls_small
                }
                "PDF",
                "pdf" -> {
                    return R.drawable.icon_pdf_small
                }
                "txt",
                "xml",
                "xhtml",
                "TXT" -> {
                    return R.drawable.icon_txt_small
                }
                "zip",
                "rar",
                "RAR",
                "ZIP",
                "TAR",
                "tar",
                "gz",
                "tar.gz",
                "TAR.GZ",
                "7 Z ",
                "7z" -> {
                    return R.drawable.icon_rar_small
                }

                "exe" -> {
                    return R.drawable.icon_exe_small
                }
                "html",
                "htm" -> {
                    return R.drawable.icon_html_small
                }
                "java",
                "class",
                "c",
                "cpp",
                "h" -> {
                    return R.drawable.icon_code_small
                }
                "ZRJ",
                "zrj",
                "GZ",
                "VSD",
                "vsd" -> {
                    return R.drawable.icon_other_small
                }

                //音乐文件
                "mp3",
                "wma",
                "aac",
                "flac",
                "ape",
                "wave",
                "wav",
                "WAV",
                "mid",
                "MID",
                "ogg",
                "OGG",
                "mp2",
                "MP2",
                "vqf",
                "CD",
                "WAVE",
                "AIFF",
                "MPEG",
                "MP3",
                "m4a",
                "M4A",
                "WMA",
                "VQF",
                "AMR",
                "FLAC",
                "AAC",
                "APE" -> {
                    return R.drawable.icon_audio_small
                }

                //视频文件
                "swf" -> {
                    return R.drawable.icon_swf_small
                }

                "avi" -> {
                    return R.drawable.icon_avi_small
                }

                "MP4",
                "mp4",
                "3gp",
                "mov",
                "rm",
                "RM",
                "rmvb",
                "wmv",
                "mpeg",
                "Mpeg",
                "mpg",
                "asf",
                "qsv",
                "HDDVD",
                "WebM",
                "RMHD",
                "RMVB",
                "F4V",
                "FLV",
                "flv",
                "MKV",
                "AVI",
                "DAT",
                "MPG",
                "MOV",
                "ASF",
                "WMV",
                "nAVI",
                "mpeg1",
                "mpeg2",
                "mpeg3",
                "mpeg4",
                "mtv",
                "amv",
                "dmv",
                "avo",
                "dat",
                "3GP" -> {
                    return R.drawable.icon_video_small
                }


                else -> {
                    return R.drawable.icon_other_small
                }

            }
        } ?: let {
            return R.drawable.icon_other_small
        }
    }

    /**
     * 获取文件大的logo
     */
    @SuppressLint("DefaultLocale")
    fun getLargeLogo(suffix: String?): Int {

        suffix?.let {
            when (suffix.toLowerCase()) {

                "psd" -> {
                    return R.drawable.icon_psd_large
                }

                "iso" -> {
                    return R.drawable.icon_iso_large
                }

                "bt" -> {
                    return R.drawable.icon_bt_large
                }

                "ai" -> {
                    return R.drawable.icon_ai_large
                }

                "ae" -> {
                    return R.drawable.icon_ae_large
                }

                "wps",
                "WPS" -> {
                    return R.drawable.icon_wps_large
                }

                //图片
                "jpeg",
                "JPG",
                "jpg",
                "wmf",
                "GIF",
                "TIF",
                "EPS",
                "PSD",
                "CDR",
                "IFF",
                "iff",
                "TGA",
                "PCD",
                "MPT",
                "mpt",
                "TIFF",
                "WEBP",
                "SWF",
                "png",
                "PNG",
                "bmp",
                "DIB",
                "dib",
                "PCP",
                "pcp",
                "dif",
                "DIF",
                "BMP",
                "tiff",
                "webp",
                "gif",
                "WMF",
                "dxf",
                "raw",
                "pcd",
                "cdr",
                "svg",
                "eps",
                "ufo",
                "fpx",
                "exif",
                "tga",
                "pcx",
                "tif",

                "pcb" -> {
                    return R.drawable.icon_jpg_large
                }

                //文档
                "ppt",
                "PPTM",
                "PPSX",
                "pptm",
                "ppsx",
                "PPSM",
                "ppsm",
                "POTX",
                "potx",
                "POTM",
                "ppam",
                "PPAM",
                "PPTX",
                "PPT",
                "pptx" -> {
                    return R.drawable.icon_ppt_large
                }
                "doc",
                "DOC",
                "DOCX",
                "DOCM",
                "docm",
                "dotx",
                "DOTX",
                "DOTM",
                "dotm",
                "docx" -> {
                    return R.drawable.icon_doc_large
                }
                "xls",
                "XLS",
                "XLSX",
                "XLSM",
                "xlsm",
                "SLTX",
                "xltx",
                "XLTM",
                "xltm",
                "XLSB",
                "xlsb",
                "XLAM",
                "xlam",
                "xlsx" -> {
                    return R.drawable.icon_xls_large
                }
                "PDF",
                "pdf" -> {
                    return R.drawable.icon_pdf_large
                }
                "txt",
                "xml",
                "xhtml",
                "TXT" -> {
                    return R.drawable.icon_txt_large
                }
                "zip",
                "rar",
                "RAR",
                "ZIP",
                "TAR",
                "tar",
                "gz",
                "tar.gz",
                "TAR.GZ",
                "7 Z ",
                "7z" -> {
                    return R.drawable.icon_rar_large
                }

                "exe" -> {
                    return R.drawable.icon_exe_large
                }
                "html",
                "htm" -> {
                    return R.drawable.icon_html_large
                }
                "java",
                "class",
                "c",
                "cpp",
                "h" -> {
                    return R.drawable.icon_code_large
                }
                "ZRJ",
                "zrj",
                "GZ",
                "VSD",
                "vsd" -> {
                    return R.drawable.icon_other_large
                }

                //音乐文件
                "mp3",
                "wma",
                "aac",
                "flac",
                "ape",
                "wave",
                "wav",
                "WAV",
                "mid",
                "MID",
                "ogg",
                "OGG",
                "mp2",
                "MP2",
                "vqf",
                "CD",
                "WAVE",
                "AIFF",
                "MPEG",
                "MP3",
                "m4a",
                "M4A",
                "WMA",
                "VQF",
                "AMR",
                "FLAC",
                "AAC",
                "APE" -> {
                    return R.drawable.icon_audio_large
                }

                //视频文件
                "swf" -> {
                    return R.drawable.icon_swf_large
                }

                "avi" -> {
                    return R.drawable.icon_audio_large
                }

                "MP4",
                "mp4",
                "3gp",
                "mov",
                "rm",
                "RM",
                "rmvb",
                "wmv",
                "mpeg",
                "Mpeg",
                "mpg",
                "asf",
                "qsv",
                "HDDVD",
                "WebM",
                "RMHD",
                "RMVB",
                "F4V",
                "FLV",
                "flv",
                "MKV",
                "AVI",
                "DAT",
                "MPG",
                "MOV",
                "ASF",
                "WMV",
                "nAVI",
                "mpeg1",
                "mpeg2",
                "mpeg3",
                "mpeg4",
                "mtv",
                "amv",
                "dmv",
                "avo",
                "dat",
                "3GP" -> {
                    return R.drawable.icon_video_large
                }


                else -> {
                    return R.drawable.icon_other_large
                }

            }
        } ?: let {
            return R.drawable.icon_other_large
        }
    }

    /**
     * ===================================================================================================================tbs服务===================================================================================================================
     */

    //压缩包
    const val TBS_ZIP = 0x0001
    //办公文档
    const val TBS_OFFICE = 0x0002
    //其它文档
    const val TBS_OTHEN_DOCUMENT = 0x0003
    //图形文件
    const val TBS_IMGAGE = 0x0004
    //音乐文件
    const val TBS_AUDIO = 0x0005
    //视频文件
    const val TBS_VUDIO = 0x0006
    //其它
    const val TBS_NO_SUPPORT = 0x0007

    @SuppressLint("DefaultLocale")
    fun getTbsType(suffix: String?): Int {
        if (TextUtils.isEmpty(suffix)) {
            return TBS_NO_SUPPORT
        }

        when (suffix!!.toLowerCase()) {

            //视频
            "rtsp",
            "rtmp",
            "mp4",
            "flv",
            "avi",
            "3gp",
            "3gpp",
            "webm",
            "ts",
            "ogv",
            "m3u8",
            "asf",
            "wmv",
            "rmvb",
            "rm",
            "f4v",
            "dat",
            "mov",
            "mpg",
            "mkv",
            "mpeg",
            "mpeg1",
            "mpeg2",
            "xvid",
            "dvd",
            "vcd",
            "vob",
            "divx"
            -> {
                return TBS_VUDIO
            }

            //压缩文件
            "rar",
            "zip",
            "tar",
            "bz2",
            "gz",
            "7z"
            -> {
                return TBS_ZIP
            }

            //办公文档
            "doc",
            "ppt",
            "pptx",
            "xls",
            "docx"
            -> {
                return TBS_OFFICE
            }

            //其它文档
            "txt",
            "epub",
            "chm",
            "html/htm",
            "xml",
            "mht",
            "url",
            "ini",
            "log",
            "bat",
            "php",
            "js",
            "lrc",
            "pdf"
            -> {
                return TBS_OTHEN_DOCUMENT
            }

            //图形文件
            "jpg",
            "png",
            "gif",
            "bmp",
            "tiff",
            "webp",
            "jpeg"
            -> {
                return TBS_IMGAGE
            }

            //音乐文件
            "mp3",
            "aac",
            "amr",
            "wav",
            "ogg",
            "mid",
            "ra",
            "wma",
            "mpga",
            "ape",
            "flac",
            "m4a"
            -> {
                return TBS_AUDIO
            }

            else -> {
                return TBS_NO_SUPPORT
            }
        }
    }

    /**
     * 判断是不是图片
     */
    @SuppressLint("DefaultLocale")
    fun isImg(suffix: String?): Boolean {
        suffix?.let {
            when (suffix.toLowerCase()) {
                //图片
                "jpeg",
                "JPG",
                "jpg",
                "wmf",
                "GIF",
                "TIF",
                "EPS",
                "PSD",
                "CDR",
                "IFF",
                "iff",
                "TGA",
                "PCD",
                "MPT",
                "mpt",
                "TIFF",
                "WEBP",
                "SWF",
                "png",
                "PNG",
                "bmp",
                "DIB",
                "dib",
                "PCP",
                "pcp",
                "dif",
                "DIF",
                "BMP",
                "tiff",
                "webp",
                "gif",
                "WMF",
                "dxf",
                "raw",
                "pcd",
                "cdr",
                "svg",
                "eps",
                "ufo",
                "fpx",
                "exif",
                "tga",
                "pcx",
                "tif",

                "pcb" -> {
                    return true
                }

                else -> {
                    return false
                }
            }
        } ?: let {
            return false
        }
    }


    //消息类型 0 文本  1 图片  2 视频 3 音乐 4 文档 5 其它


    @SuppressLint("DefaultLocale")
    fun getImFileType(suffix: String?): Int {
        when (TextUtils.isEmpty(suffix)) {
            true -> {
                return 5
            }
            else -> {
                when (suffix!!.toLowerCase()) {
                    //视频
                    "rtsp",
                    "rtmp",
                    "mp4",
                    "flv",
                    "avi",
                    "3gp",
                    "3gpp",
                    "webm",
                    "ts",
                    "ogv",
                    "m3u8",
                    "asf",
                    "wmv",
                    "rmvb",
                    "rm",
                    "f4v",
                    "dat",
                    "mov",
                    "mpg",
                    "mkv",
                    "mpeg",
                    "mpeg1",
                    "mpeg2",
                    "xvid",
                    "dvd",
                    "vcd",
                    "vob",
                    "divx"
                    -> {
                        return 2
                    }

                    //办公文档
                    "doc",
                    "ppt",
                    "pptx",
                    "xls",
                    "docx"
                    -> {
                        return 4
                    }

                    //其它文档
                    "txt",
                    "epub",
                    "chm",
                    "html/htm",
                    "xml",
                    "mht",
                    "url",
                    "ini",
                    "log",
                    "bat",
                    "php",
                    "js",
                    "lrc",
                    "pdf"
                    -> {
                        return 5
                    }

                    //图形文件
                    "jpg",
                    "png",
                    "gif",
                    "bmp",
                    "tiff",
                    "webp",
                    "jpeg"
                    -> {
                        return 1
                    }

                    //音乐文件
                    "mp3",
                    "aac",
                    "amr",
                    "wav",
                    "ogg",
                    "mid",
                    "ra",
                    "wma",
                    "mpga",
                    "ape",
                    "flac",
                    "m4a"
                    -> {
                        return 3
                    }

                    else -> {
                        return 5
                    }
                }
            }
        }

    }

}